home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / e / amigae30a_fr.lha / AmigaE30f / Sources / Tools / Arexx / arexx.doc next >
Encoding:
Text File  |  1994-10-07  |  2.3 KB  |  69 lines

  1. arexx.m: simple routines pour ajouter u port Arexx à votre programme.
  2.  
  3.  
  4. port:=rx_OpenPort(nomduport)
  5.  
  6.     Créé un port Arexx. De gros programme peuevent maintenant vous atteindre
  7.     en disant 'ADDRESS nomduport').
  8.     Exception possible : "MEM", "SIG", "DOUB". Les 2 derniers sont
  9.     'Ne peut allouer le signal' et 'Un port avec le même nom éxiste déja'.
  10.  
  11.  
  12. rx_ClosePort(port)
  13.  
  14.     Libère le port et les resources associées. Peut être sans preoblême être
  15.     appelé avec NIL.
  16.  
  17.  
  18. mes,string:=rx_GetMsg(port)
  19.  
  20.     Comme un GetMsg, à partir qu'il est spécifique pour Rexx. Sort la chaine
  21.     envoyée par le programme externe. Si mes=NIL alors il n'y avait pas de
  22.     message.
  23.  
  24.  
  25. rx_ReplyMsg(mes,rc=0,chaineresultat=NIL)
  26.  
  27.     Répond au message que vous avez reçu de rx_GetMsg(). Mettez rc=0 si pas
  28.     d'erreur, et une chaine si vous pensez que la commande envoyée demande un
  29.     résultat. rc> signale une erreur (pas de résultat retourné).
  30.  
  31.  
  32. rx_HandleAll(interpret_proc,nomduport)
  33.  
  34.     Les 4 premières fonctions vous travailler avec la machinery nécessaire pur
  35.     ouvrir un port Arexx à vos programmes. Cependant si votre programme n'est
  36.     fait quepour attendre et réaliser des messages Arexx, vous pouvez utiliser
  37.     cette fonction qui englobe les 4 autres. Tout ce qu'il y a à faire est de
  38.     faire un PROC pour lire les messages et un nom de port.
  39.  
  40.     Le source de cette fonction est un exemple utile pour savoir comment
  41.     appeler les autres 4 fonctions, en cas que vous vouliez les appelez
  42.     vous-même:
  43.  
  44.     PROC rx_HandleAll(interpret_proc,nomduport) HANDLE
  45.       DEF port=NIL,sig,quit=FALSE,mes,s,rc,rs
  46.       port,sig:=rx_OpenPort(nomduport)
  47.       REPEAT
  48.         Wait(sig)
  49.         REPEAT
  50.           mes,s:=rx_GetMsg(port)
  51.           IF mes
  52.             quit,rc,rs:=interpret_proc(s)
  53.             rx_ReplyMsg(mes,rc,rs)
  54.           ENDIF
  55.         UNTIL (mes=NIL) OR (quit=TRUE)
  56.       UNTIL quit
  57.       Raise()
  58.     EXCEPT
  59.       rx_ClosePort(port)
  60.       ReThrow()
  61.     ENDPROC
  62.  
  63.     A partir de ce code, on peut voir que la procédure donnée comme argument à
  64.     rx_HandleAll() reçoit comme argument une chaine qu'on peut utiliser, et
  65.     qui retourne un drapeau pour quitter ou non, et  rc et rs comme écrit dans
  66.     la fonction rx_Reply().
  67.     Voir arexxsimple.e pour savoir comment faire un arexxhost avec cette
  68.     fonction avec juste quelques lignes de code.
  69.